Quale pacchetto Haskell contiene un determinato modulo
Domanda
Conosco il nome di un modulo Haskell, ma non riesco a capire in quale pacchetto sia definito. Questo è male perché non posso compilare senza un pacchetto che espone questo modulo.
Specificamente è Text.Regex che non riesco a individuare, ma vorrei sapere come risolvere quel problema in generale.
Soluzione
http://www.haskell.org/ghc/ docs / ultima / html / users_guide / packages.html
ghc-pkg find-module Text.Regex
Ma questo funziona solo per (a) GHC recenti e (b) pacchetti installati sul tuo sistema.
Puoi anche passare in rassegna il file del pacchetto (ad es. /usr/lib/ghc-6.8.2/package.conf) per vedere cosa è installato.
Puoi anche utilizzare i motori di ricerca dell'API haskell hoogle o hackage motore di ricerca hayoo .
Text.Regex si trova nel pacchetto regex-base e alcuni altri sono basati su di esso.
Altri suggerimenti
Se stai usando Cabal e hai il pacchetto installato, puoi semplicemente provare a compilarlo con cabal build
e Cabal ti informerà di quale pacchetto hai dimenticato di aggiungere alle tue dipendenze:
Main.hs:1:8:
Could not find module `Text.Regex':
It is a member of the hidden package `regex-compat-0.93.1'.
Perhaps you need to add `regex-compat' to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
Se stai usando Debian e i pacchetti forniti da Debian, c'è un indice di documentazione globale in /usr/share/doc/ghc-doc/html/libraries/index.html
che elenca il pacchetto nell'ultima colonna.